Amazon Bedrock Prompt Management が一般提供開始になりました
こんにちは。森田です。
以下のアップデートで Amazon Bedrock Prompt Management が GA となりました!
Amazon Bedrock Prompt Management については、以前よりプレビューとして公開はされていましたが、GAのタイミングで新しい機能が利用できるようになっています。
プレビュー時との比較
GAで以下の機能が新たに利用可能になりました。
- モデル呼び出し時のプロパティ指定が拡大
- システムプロンプト、会話履歴、ツール構成の指定が可能に
- 作成した Prompt をモデル呼び出し時に指定可能
- Converse API、InvokeModel APIで利用可能
プレビュー時の詳細については以下をご参照ください。
モデル呼び出し時のプロパティ指定可能
では、追加された内容を AWS マネジメントコンソールから確認していきます。
以下のように新たに「System instructions」が追加されており、システムプロンプトについては、こちらに記述します。
会話履歴については、「Prompt」下部の「Add message」をクリックすることで以下のように複数のメッセージを追加できます。
ページ下部に「Test variables」があり、プロンプト内でプレースホルダーが使用された変数が表示されます。
1点ハマりポイントとして、以前の会話履歴や User message 内のプレースホルダーは認識しますが、System instructions のプレースホルダーを認識してくれません。
なお、コンソール上では認識されませんが、APIからはプレースホルダーを認識して、期待した動作をしてくれます。
作成した Prompt をモデル呼び出し時に指定可能
従来までは、「Bedrock Prompt Management」では、プロンプトの管理だけが行える機能となっており、プロンプトを利用する際には、モデル呼び出し前にAPIでプロンプトを取得して、モデル呼び出しAPIにプロンプト情報を指定する必要がありました。
今回のアップデートで、上記が不要となり、API実行時に Prompt ARN を指定するだけで利用することができるようになりました!
Converse API
以下のコードは、Converse API
での実行例です。
import json
import boto3
bedrock = boto3.client('bedrock-runtime', region_name='us-west-2')
modelId = "Prompt ARN"
promptVariables = {
"name":{
"text": "カレー"
},
"number":{
"text": "10"
},
"language":{
"text": "英語"
}
}
response = bedrock.converse(
modelId=modelId,
promptVariables=promptVariables
)
print(response["output"]["message"]["content"][0]["text"])
modelId
には以下の Prompt ARN を指定することで利用ができます。
また、promptVariables
で変数の値を指定することができます。
InvokeModel API
InvokeModel API
でも利用可能です。
import json
import boto3
bedrock = boto3.client('bedrock-runtime', region_name='us-west-2')
modelId = "Prompt ARN"
promptVariables = {
"name":{
"text": "カレー"
},
"number":{
"text": "10"
},
"language":{
"text": "英語"
}
}
body = json.dumps({
"promptVariables":promptVariables
})
response = bedrock.invoke_model(body=body, modelId=modelId)
response_body = json.loads(response.get('body').read())
print(response_body["content"][0]["text"])
InvokeModel API
では、promptVariablesをJSON形式にする必要があるため、基本Converse API
を利用したいですね。
まとめ
GAに伴い、「Prompt Management」が非常に使いやすくなりました!
特にいいなと思ったのは、プロンプト、モデル、プロパティといった本来コード上で指定が必要な部分をAWSコンソール上から管理できるという点です。
コードについては、作成した Prompt ARN を指定しておき、後からコンソール上で変更するといった運用ができるようになります。
また、バージョン管理もできるため、プロンプト運用も楽に行えます。
ぜひ新しくなった「Prompt Management」を使ってみてください!
参考